package org.ph.share.lock.test.thread2;

import lombok.extern.slf4j.Slf4j;

import java.util.concurrent.TimeUnit;


/**
 * 线程饥饿探究
 * 饥饿（Starvation）是指某个线程因为无法获取所需的资源而无法继续执行的情况。
 * 通常情况下，饥饿是由于某些线程长时间占用了共享资源，导致其他线程无法获得所需的资源而被阻塞
 * 或者是由于某些线程的优先级不够高，无法获得CPU时间片而被阻塞。
 *
 * @author Hush.
 * @since 2023/1/18 19:47
 */
@Slf4j
public class Thread10 {

    public static void main(String[] args) {
        // Chopsticks c1 = new Chopsticks("c1");
        // Chopsticks c2 = new Chopsticks("c2");
        // Chopsticks c3 = new Chopsticks("c3");
        // Chopsticks c4 = new Chopsticks("c4");
        // Chopsticks c5 = new Chopsticks("c5");
        // new Philosopher("德谟克里特-1", c1, c2).start();
        // new Philosopher("苏格拉底-2", c2, c3).start();
        // new Philosopher("柏拉图-3", c3, c4).start();
        // new Philosopher("亚里士多德-4", c4, c5).start();
        // // 这里转化顺序
        // new Philosopher("普罗塔哥拉-5", c1, c5).start();
    }
}
